
#ifndef OBJECT_INSPECTOR_DIRECTOR_OSG
#define OBJECT_INSPECTOR_DIRECTOR_OSG

#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtGui/QIcon>

#include "Define.h"

#include <ObjectInspectorDirector.h>
#include <ObjectInspectorItem.h>
#include <osg/Node>
class ObjectInspectorDirectorOsg : public ObjectInspectorDirector
{
    Q_OBJECT
public:

    ObjectInspectorDirectorOsg();

    virtual ~ObjectInspectorDirectorOsg();

    virtual void rebuild(QStandardItem* model_root_item);

    virtual bool addItemDown(EObject* parentObj, EObject* newObj);//new

    virtual bool deleteItem( EObject* obj);//new

    virtual bool changeItemParent( EObject* parentObj, EObject* childObj);//new

    virtual bool copyItem(EObject* objPtr);//new

    virtual void refresh();

    virtual void selectionItemChanged ( QList<ObjectInspectorItem*> item_list );

    virtual QList<QAction*> getActionList();

    virtual void currentItemChanged ( ObjectInspectorItem* item_ptr );

    void refreshItemColor();
protected:

protected slots:
    void actionReadOsgModelFile();
    void actionWriteToOsgModelFile();
private:
    int m_count;//is used for set the node name when addDown,copy.
    QList<QAction*> m_actionList;
    ObjectInspectorItem* m_currentItem;
};

#endif // OBJECT_INSPECTOR_DIRECTOR_OSG
